package com.youlai.system.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.youlai.system.common.model.Option;
import com.youlai.system.model.entity.SysGrade;
import com.youlai.system.model.form.GradeForm;
import com.youlai.system.model.query.GradePageQuery;
import com.youlai.system.model.vo.GradePageVO;

import java.util.List;

/**
 * 职级业务接口
 */
public interface SysGradeService extends IService<SysGrade> {
    /**
     * 根据职级内容精确匹配记录
     *
     * @param content
     * @return
     */
    SysGrade getByContentEqual(String content);

    /**
     * 保存职级内容
     *
     * @param content
     * @return
     */
    Long saveByContent(String content);

    /**
     * 职级分页列表
     *
     * @param queryParams
     * @return
     */
    Page<GradePageVO> getGradePage(GradePageQuery queryParams);

    /**
     * 保存职级
     *
     * @param gradeForm
     * @return
     */
    boolean saveGrade(GradeForm gradeForm);


    /**
     * 更新职级
     *
     * @param gradeForm
     * @return
     */
    boolean updateGrade(Long gradeId, GradeForm gradeForm);

    /**
     * 查询单个职级
     *
     * @param gradeId
     * @return
     */
    GradeForm getGradeForm(Long gradeId);

    /**
     * 删除职级列表
     *
     * @param idsStr
     * @return
     */
    boolean deleteGrades(String idsStr);

    /**
     * 删除职级列表
     *
     * @param idList
     * @return
     */
    boolean deleteGrades(List<Long> idList);

    /**
     * 职级下拉列表
     *
     * @return
     */
    List<Option> listGradeOptions();

}
